perm filename SPRINT.FAI[2,LCS] blob
sn#249599 filedate 1977-09-19 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE SPRINT
C00006 ENDMK
C⊗;
TITLE SPRINT
INTERNAL PRINT,IFIX,FLOAT,FORNAM,RNDINT,RAND
EXTERNAL FILES. ;WRITING ON DSK (DEV.1 ONLY!)
;FORTRAN CALLABLE RANDOM NUMBER GENERATOR
;
;USE CALL RNDINT TO INITIALIZE THE GENERATOR
; (THE GENERATOR IS LOADED INITIALIZED)
;USE RAND(XL,XH) AS A FUNCTION TO RETURN THE NEXT
; RANDOM NUMBER BETWEEN XL AND XH
; (XL,XH ARE FLOATING POINT,RAND RETURNS
; FLOATING POINT)
;
RNDINT: 0
MOVE 0,[756132257563]
MOVEM 0,R1
ADDI 0,2
MOVEM 0,R2
JRA 16,0(16)
R1: 756132257563
R2: 756132257565
RAND: 0
MOVEM 1,TEMP
MOVE 0,@0(16)
MOVE 1,@1(16)
FSBR 1,0
MOVEM 0,LLIM#
MOVE 0,R1
ADD 0,R2
EXCH 0,R2
MOVEM 0,R1
LSH 0,-11
FSC 0,200
FMP 0,1
FAD 0,LLIM
MOVE 1,TEMP
JRA 16,2(16)
TEMP: 0
IFIX: 0
KIFIX 0,@(16)
JRA 16,1(16)
FLOAT: 0
FLTR 0,@(16)
JRA 16,1(16)
A←1
B←2
C←3
D←4
P←17
LOOP: PUSHJ P,TYI
POPJ P,
CAIN A,15
JRST LOOP
CAIN A,12
JRST MK1
CAIN A,53
JRST MK2
TRNN B,2
JRST OUTIT
MOVEI B,0
MOVE C,A
MOVEI A,15
PUSHJ P,TYO
MOVEI A,12
PUSHJ P,TYO
MOVE A,C
OUTIT: PUSHJ P,TYO
JRST LOOP
MK1: TRO B,2
JRST LOOP
MK2: TRNN B,2
JRST OUTIT
MOVEI B,0
JRST LOOP
PRINT: 0
INIT 12,0
SIXBIT /LPT/
XWD OBUF,
CALLI 12
OUTBUF 12,2
COMDLP: PUSHJ P,DNIT
PUSHJ P,LOOP
EXIT: MOVEI A,14
RELEASE 11,0
RELEASE 12,0
JRA 16,(16)
DNIT: RELEASE 11,0
INIT 11,0
SIXBIT /DSK/
IBUF
CALLI 12
SETZM FILNAM+3
LOOKUP 11,FILNAM
CALLI 12
INBUF 11,2
POPJ P,
TYI: SOSLE IBUF+2
JRST OKIN
IN 11,0
JRST OKIN
STATZ 11,20000
POPJ P,
CALLI 12
OKIN: ILDB A,IBUF+1
JUMPE A,TYI
AOS (P)
POPJ P,
TYO: SOSG OBUF+2
OUTPUT 12,0
IDPB A,OBUF+1
POPJ P,
IBUF: BLOCK 3
OBUF: BLOCK 3
FILNAM: SIXBIT/FOR22/
SIXBIT/DAT/
0
0
PDL: BLOCK 10
FORNAM: 0
;CHANGES NAMES TO SIXBIT
MOVE 0,@0(16)
MOVEM 0,FN#
MOVE 1,[POINT 7,FN]
INTF3: MOVE 2,[POINT 6,NAM]
SETZM NAM
MOVEI 3,5
INTF1: ILDB 0,1
CAIN 0," "
JRST INTF2
SUBI 0,40
IDPB 0,2
SOJG 3,INTF1
INTF2: MOVE 0,@1(16)
MOVEM 0,EX#
MOVE 1,[POINT 7,EX]
EXTF3: MOVE 2,[POINT 6,EXT]
SETZM EXT
MOVEI 3,5
EXTF1: ILDB 0,1
CAIN 0," "
JRST EXTF2
SUBI 0,40
IDPB 0,2
SOJG 3,EXTF1
EXTF2: MOVE 0,NAM#
MOVEM 0,FILES.
MOVE 0,EXT#
MOVEM 0,FILES.+1
JRA 16,2(16)
END